package org.review.algorithm.sort;

import com.sun.istack.internal.Pool;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

/**
 * 关键是等一趟比较完后，最后交换，下次比较 掠过交换过的位置，另外需要一个辅助指针
 */
public class SelectionSort {
    public static void main(String[] args) {
      /*  int[] arr = new int[]{101, 34, 119, 1, -1, 90, 123};
        System.out.print("排序前打印顺序：");
        Arrays.stream(arr).forEach(e -> System.out.print(e + " "));
        impl1(arr);
        System.out.println("排序后打印");
        Arrays.stream(arr).forEach(e -> System.out.print(e + " "));*/




        int size = 900000;
        int[] arr = new int[size];
        for (int i = 0; i < size; i++) {
            arr[i] = (int) (Math.random() * size); // 生成一个[0, 8000000) 数
        }

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        String date1Str = simpleDateFormat.format(new Date());
        System.out.println("排序前的时间是=" + date1Str);
        impl1(arr);
        //quickSort(arr, 0, arr.length - 1);
        String date2Str = simpleDateFormat.format(new Date());
        System.out.println("排序后的时间是=" + date2Str);
    }

    public static void impl1(int[] arr) {

        int k;
        for (int i = 0; i < arr.length; i++) {
            k = i;
            for (int j = i; j < arr.length; j++) {
                if (arr[k] > arr[j]) {
                    k = j;
                }
            }
            int temp = arr[k];
            arr[k] = arr[i];
            arr[i] = temp;
        }
    }
}
